Ee392c: Advanced Topics in Computer Architecture Speculative Multithreading
نویسنده
چکیده
The first paper for this lecture [1] categorizes various options for supporting speculative multithreading in hardware, while the second [2] describes a way to implement it in software without specific architectural support. The class discussion covered the requirements and tradeoffs of software, hardware, and hybrid support for speculative multithreading. Thread-level speculation (TLS) is a way to extract parallelism from applications where it is not easy to guarantee that threads are independent. To implement TLS an architecture must buffer state, since it needs a way to backup when a violation occurs. This paper introduces a taxonomy used to classify the approaches to buffering speculative memory state. The authors classify architectures based upon where they store their speculative memory as well as the number of speculative tasks allowed per processor. In Architecture Main Memory (AMM), committed memory is stored in the main memory system. The paper describes two flavors of AMM, lazy and eager. In eager merging, the speculative state is merged into main memory as soon as a thread commits. The next speculative thread is not allowed to become non-speculative (the head) until this data is merged. In some cases, this merging is on the critical path of the program. Lazy merging is free of this problem since thread is allowed to pass the head token before its speculative data has been transferred to main memory. In Future Main Memory (FMM), main memory contains the most recent version of each piece of data. If there are speculative versions of a section of memory, the committed state is kept in a buffer. In general, FMM performs commits faster than AMM since the formerly speculative data is already in the memory hierarchy. However, violations are more costly in FMM since it must restore the state of the memory hierarchy. They also classified speculative architectures based on how many non-committed speculative tasks can be assigned to each processor. In a Single Speculative Task (SingleT) architecture, a processor cannot be assigned another speculative task until its current task is committed. In SingleT architectures, load balancing is important since a short speculative thread will cause a processor to stall until a long head thread has completed.
منابع مشابه
Ee392c: Advanced Topics in Computer Architecture Polymorphic Architectures I
We are entering an era of ubiquitous computing, as technology scales, more and more applications demand ever-growing performances. Yet the design complexity grows as well. In addition, high non-incurring fabrication cost and manufacturing delays demand chips to be sold in large volume, thus targeting a larger market to be cost effective. How can we achieve performances comparable to customized ...
متن کاملSupporting Speculative Multithreading on Simultaneous Multithreaded Processors
Speculative multithreading is a technique that has been used to improve single thread performance. Speculative multithreading architectures for Chip multiprocessors (CMPs) have been extensively studied. But there have been relatively few studies on the design of speculative multithreading for simultaneous multithreading (SMT) processors. The current SMT based designs IMT [9] and DMT [2] use loa...
متن کاملSpeculative Multithreading: An Object-Driven Approach
Speculative multithreading (SpMT) is a parallelizing execution model for single-threaded programs on multi-core architectures. In this paper, we introduce a new SpMT model, Object-Driven Speculative Multithreading, which exploits the structure and semantics of object-oriented programs to generate speculative parallelism. Within our technique, individual program objects take the responsibility t...
متن کامل